#！/usr/bin/env python
#!coding=utf-8
import sys
import os
import _thread as thread
import time
import threading
'''
相对于 thread 包，threading 包提供了更多的功能。该包的用法基本分成两步：
第一步是构造一个 threading.Thread 实例对象，这时该对象对应的线程就处于“新建”状态；
第二步是操作该对象，如调用 start() 来将该线程转换到"就绪"状态。
'''

def thread_entry():                                     # 线程入口函数
    left_round = 10                                     # 一共循环10轮
    print(' Child Thread: Start Running')
    while left_round > 0:
        print('Child Thread: Running, left round = %d' % left_round)
        time.sleep(0.5)
        left_round = left_round - 1
    print("Child Thread Quit")          # 线程退出
def start_threads():                    # 启动线程
    #thread1 = threading.Thread(target=thread_entry, daemon=True)
    thread1 = threading.Thread(target=thread_entry, daemon=False)
    thread1.start()                     # 启动线程，使之处于“就绪”状态
    time.sleep(0.8)
    print("Active Thread Number = %d" % threading.active_count())
    time.sleep(1.8)
    print("Main Thread Quit")           # 主线程退出
    # 主线程退出后，daemon线程，也就是后台进程会自动结束
    # 如果新启的线程不是dameon线程，主线程结束后，该线程会继续执行
if __name__=='__main__':
    start_threads()